/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mail;

import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

/**
 *
 * @author davidcabrera
 */
public class enviarMail {
 
        
    private String from="sportclubit@gmail.com";
    private String pass="Admin12345678";

    public String getPass() {
        return pass;
    }

    public void setPass(String pass) {
        this.pass = pass;
    }
    
    
    public String getFrom() {
        return from;
    }

    public void setFrom(String from) {
        this.from = from;
    }
    
    public void sendMailReserva(String direccion, String nombre, String precio, String npista, String ninst, String hora, String pdf) {
        try {
            // Propiedades de la conexión
            Properties props = new Properties();
            props.setProperty("mail.smtp.host", "smtp.gmail.com");
            props.setProperty("mail.smtp.starttls.enable", "true");
            props.setProperty("mail.smtp.port", "587");
            props.setProperty("mail.smtp.user", this.getFrom());
            props.setProperty("mail.smtp.auth", "true");

            
            // Preparamos la sesion
            Session session = Session.getDefaultInstance(props,null);

            
            // Se compone la parte del texto
            BodyPart texto = new MimeBodyPart();
            texto.setText(
                    "Reserva realizada con éxito. A continuación se muestra los datos de la misma, en caso de haber algún error "
                    + "no dude en contactar con nosostros\n"
                    + "------------------------------------------\n\n"
                    + "DATOS PERSONALES\n"
                    + "------------------------------------------\n\n"
                    + "Nombre: "+nombre+"\n"
                    + "Dirección Correo: "+direccion+"\n"
                    + "-------------------------------------------\n"
                    + "DATOS DE LA RESERVA\n"
                    + "------------------------------------------\n\n"
                    + "Instalación: "+ninst+"\n"
                    + "Pista: "+npista+"\n"
                    + "Hora: "+hora+"\n"
                    + "Precio: "+precio+" €\n"
                    + "Nota: Es recomendable llegar 10 minutos antes de la hora reservada e imprimir el comprobante de "
                    + "la reserva para presentar al encargado.\n"
                    + "------------------------------------------\n\n"
                    + "¡Muchas Gracias por confiar en nosotros!\n"
                    + "\t\tSPORT CLUB ©2013");
            
            
            /*// Construimos el mensaje
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(this.getFrom()));
            message.addRecipient(
                    Message.RecipientType.TO,
                    new InternetAddress(direccion));
            message.setSubject("Reserva");
            message.setText(
                    "Reserva realizada con éxito. A continuación se muestra los datos de la misma, en caso de haber algún error "
                    + "no dude en contactar con nosostros\n"
                    + "------------------------------------------\n\n"
                    + "DATOS PERSONALES\n"
                    + "------------------------------------------\n\n"
                    + "Nombre: "+nombre+"\n"
                    + "Dirección Correo: "+direccion+"\n"
                    + "-------------------------------------------\n"
                    + "DATOS DE LA RESERVA\n"
                    + "------------------------------------------\n\n"
                    + "Instalación: "+ninst+"\n"
                    + "Pista: "+npista+"\n"
                    + "Hora: "+hora+"\n"
                    + "Precio: "+precio+" €\n"
                    + "Nota: Es recomendable llegar 10 minutos antes de la hora reservada e imprimir el comprobante de "
                    + "la reserva para presentar al encargado."
                    + "------------------------------------------\n\n"
                    + "¡Muchas Gracias por confiar en nosotros!\n"
                    + "\t\tSPORT CLUB ©2013");
*/
            //Adjuntar pdf
            BodyPart adjunto = new MimeBodyPart();
            adjunto.setDataHandler(new DataHandler(new FileDataSource(pdf)));
            adjunto.setFileName("ComprobanteReserva.pdf");
            
            // Una MultiParte para agrupar texto e imagen.
            MimeMultipart multiParte = new MimeMultipart();
            multiParte.addBodyPart(texto);
            multiParte.addBodyPart(adjunto);
            
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(this.getFrom()));
            message.addRecipient(
                Message.RecipientType.TO,
                new InternetAddress(direccion));
            message.setSubject("Reserva");
            message.setContent(multiParte);
            
            // Lo enviamos.
            Transport t = session.getTransport("smtp");
            t.connect(this.getFrom(), this.getPass());
            t.sendMessage(message, message.getAllRecipients());

            // Cierre.
            t.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    public void sendMailModificacion(String direccion, String nombre, String email, String contr) {
        try {
            // Propiedades de la conexión
            Properties props = new Properties();
            props.setProperty("mail.smtp.host", "smtp.gmail.com");
            props.setProperty("mail.smtp.starttls.enable", "true");
            props.setProperty("mail.smtp.port", "587");
            props.setProperty("mail.smtp.user", this.getFrom());
            props.setProperty("mail.smtp.auth", "true");

            // Preparamos la sesion
            Session session = Session.getDefaultInstance(props);

            // Construimos el mensaje
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(this.getFrom()));
            message.addRecipient(
                    Message.RecipientType.TO,
                    new InternetAddress(direccion));
            message.setSubject("Modificacion de Datos");
            message.setText(
                    "El cambio en sus datos se ha realizado con éxito. A continuación se muestra un resumen de los mismos, en caso de haber algún error "
                    + "no dude en contactar con nosostros\n"
                    + "------------------------------------------\n\n"
                    + "Nombre: "+nombre+"\n"
                    + "Dirección Correo: "+email+"\n"
                    + "Contraseña: "+contr+"\n\n"
                    + "-------------------------------------------\n"
                    + "¡Muchas Gracias por confiar en nosotros!\n"
                    + "\t\tSPORT CLUB ©2013");

            // Lo enviamos.
            Transport t = session.getTransport("smtp");
            t.connect(this.getFrom(), this.getPass());
            t.sendMessage(message, message.getAllRecipients());

            // Cierre.
            t.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    public void sendMailRegistro(String direccion, String nombre, String email, String contr) {
        try {
            // Propiedades de la conexión
            Properties props = new Properties();
            props.setProperty("mail.smtp.host", "smtp.gmail.com");
            props.setProperty("mail.smtp.starttls.enable", "true");
            props.setProperty("mail.smtp.port", "587");
            props.setProperty("mail.smtp.user", this.getFrom());
            props.setProperty("mail.smtp.auth", "true");

            // Preparamos la sesion
            Session session = Session.getDefaultInstance(props);

            // Construimos el mensaje
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(this.getFrom()));
            message.addRecipient(
                    Message.RecipientType.TO,
                    new InternetAddress(direccion));
            message.setSubject("Registro");
            message.setText(
                    "Gracias por registrarse en Sport Club. A continuación se muestra los datos de su registro, en caso de haber algún error "
                    + "no dude en contactar con nosostros\n"
                    + "------------------------------------------\n\n"
                    + "Nombre: "+nombre+"\n"
                    + "Dirección Correo: "+email+"\n"
                    + "Contraseña: "+contr+"\n\n"
                    + "-------------------------------------------\n"
                    + "¡Muchas Gracias por confiar en nosotros!\n"
                    + "\t\tSPORT CLUB ©2013");

            // Lo enviamos.
            Transport t = session.getTransport("smtp");
            t.connect(this.getFrom(), this.getPass());
            t.sendMessage(message, message.getAllRecipients());

            // Cierre.
            t.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    public void sendMailBaja(String direccion, String nombre) {
        try {
            // Propiedades de la conexión
            Properties props = new Properties();
            props.setProperty("mail.smtp.host", "smtp.gmail.com");
            props.setProperty("mail.smtp.starttls.enable", "true");
            props.setProperty("mail.smtp.port", "587");
            props.setProperty("mail.smtp.user", this.getFrom());
            props.setProperty("mail.smtp.auth", "true");

            // Preparamos la sesion
            Session session = Session.getDefaultInstance(props);

            // Construimos el mensaje
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(this.getFrom()));
            message.addRecipient(
                    Message.RecipientType.TO,
                    new InternetAddress(direccion));
            message.setSubject("Baja");
            message.setText(
                    nombre+" Te echaremos de menos en Sport Club. ¿cúal fue el motivo de tu baja? Entra en nuestra página en la parte de "
                    + "contacta y cuéntanoslo. "
                    + "Si tienes alguna pregunta o sugerencia no dudes en contactar con nosostros\n"
                    + "-------------------------------------------\n"
                    + "¡Muchas Gracias por confiar en nosotros!\n"
                    + "\t\tSPORT CLUB ©2013");

            // Lo enviamos.
            Transport t = session.getTransport("smtp");
            t.connect(this.getFrom(), this.getPass());
            t.sendMessage(message, message.getAllRecipients());

            // Cierre.
            t.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    public void sendMailSugerencia(String nombre, String email, String descripcion, Date fecha){
        try {
            // Propiedades de la conexión
            Properties props = new Properties();
            props.setProperty("mail.smtp.host", "smtp.gmail.com");
            props.setProperty("mail.smtp.starttls.enable", "true");
            props.setProperty("mail.smtp.port", "587");
            props.setProperty("mail.smtp.user", this.getFrom());
            props.setProperty("mail.smtp.auth", "true");

            // Preparamos la sesion
            Session session = Session.getDefaultInstance(props);

            // Construimos el mensaje
            MimeMessage message = new MimeMessage(session);
            message.setFrom(new InternetAddress(this.getFrom()));
            message.addRecipient(
                    Message.RecipientType.TO,
                    new InternetAddress(this.getFrom()));
            message.setSubject("Sugerencia");
            message.setText(
                    "Se ha recibido una sugerencia. A continuación se muestra los datos personales y la descripcion\n\n"
                    + "DATOS PERSONALES\n"
                    + "------------------------------------------\n"
                    + "Nombre: "+nombre+"\n"
                    + "Dirección Correo: "+email+"\n\n"
                    + "DESCRIPCION\n"
                    + "-------------------------------------------\n"
                    +descripcion+"\n"
                    +"FECHA: "+fecha+"\n\n"
                    + "\t\tSPORT CLUB ©2013");

            // Lo enviamos.
            Transport t = session.getTransport("smtp");
            t.connect(this.getFrom(), this.getPass());
            t.sendMessage(message, message.getAllRecipients());

            // Cierre.
            t.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}